package com.endava.spring_ioc.service;

import java.util.List;

import com.endava.spring_ioc.beans.Account;

/**
 * The implemented services for model <code>Account</code>.
 * 
 * @author acojocar
 * @since 26.07.2013
 * @version 1.0
 * 
 */
public interface AccountService {

	/**
	 * Return a list of all account from Data Base.
	 * 
	 * @return list of accounts
	 */
	public List<Account> getAllAccounts();

	/**
	 * Adds a new account to the list of accounts.
	 * 
	 * @param account
	 *            the account to be added
	 * @return the size of list
	 */
	public int addAccount(Account account);

	/**
	 * Adds a new account to Data Base, with the specified parameters.
	 * 
	 * @param accountID
	 *            the ID of account
	 * @param accountType
	 *            the type of account
	 * @param amount
	 *            the amount of account
	 * @return true if add new account operation can be done with success; false
	 *         otherwise
	 */
	public boolean addAccount(Integer accountID, String accountType,
			Integer amount);

	/**
	 * Deletes the account with the specified ID.
	 * 
	 * @param accountID
	 *            the ID of account to be deleted
	 * @return true if the delete operation can be done with success; false
	 *         otherwise
	 */
	public boolean deleteAccount(Integer accountID);

}
